﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ClassTestWork3
{
    //Составить класс для определения одномерных массивов целых чисел(векторов).
    //Предусмотреть возможность обращения к отдельному элементу массива
    //с контролем выхода за пределы массива,
    //возможность задания произвольных границ индексов при создании объекта,
    //и выполнения операций поэлементного сложения и вычитания массивов
    //одинаковой длинны.

    class OneDimensionArray
    {
        private int[] innerArray;
        private int shift;


        public OneDimensionArray(int arraySize, int shift)
        {
            innerArray = new int[arraySize];
            this.shift = shift;
            for (int i = 0; i < arraySize; i++)
                innerArray[i] = i;
        }

        public int this[int index]
        {
            get
            {
                index -= shift;
                if (index<0 || index>=innerArray.Length)
                    throw new IndexOutOfRangeException();
                return innerArray[index];
            }
            set
            {
                index -= shift;
                if (index < 0 || index >= innerArray.Length)
                    throw new IndexOutOfRangeException();
                innerArray[index] = value;
            }
        }

        public void Sum(int[] array)
        {
            if (array.Length != innerArray.Length)
            {
                Console.WriteLine("Массивы имеют разную длинну! ОШИБКА!!!!");
            }
            else
            {
                for (int i = 0; i < innerArray.Length; i++)
                {
                    innerArray[i] += array[i];
                }
            }


        }

    }




    class Program
    {
        static void Main(string[] args)
        {
            OneDimensionArray array = new OneDimensionArray(5, 0);
            
            int[] anotherArray = new int[6] {4,3,2,1,0, -1};

            array.Sum(anotherArray);

            for(int i= 0; i<5; i++)
                Console.WriteLine(array[i]);
        }
    }
}
